﻿using System;
using System.Collections.Generic;
using System.Web.UI.WebControls;
using BLL;

namespace Web.forms
{
    public partial class GeneraAjuste : Pagina
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack) return;

            btnNuevo_Click(null, null);
        }

        protected IList<Config> ObtenerConfiguraciones()
        {
            return ObtenerConfiguraciones(false);
        }

        protected IList<Config> ObtenerConfiguraciones(bool Refrescar)
        {
            var sMensaje = "";

            if (Refrescar)
                ViewState["Configuracion"] = BLL.Configuracion.ObtenerConfiguraciones(ref sMensaje);

            if (ViewState["Configuracion"] == null)
                ViewState["Configuracion"] = new BLL.Configuracion();

            return ViewState["Configuracion"] as List<Config>;
        }

        protected void CargaConfiguraciones()
        {
            CargaConfiguraciones(ref grvConfiguracion, ObtenerConfiguraciones(true));
        }

        protected static void CargaConfiguraciones(ref GridView gv, object tbl)
        {
            gv.DataSource = tbl;
            gv.DataBind();
        }

        protected void grvConfiguracion_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.RowIndex == 0)
                    e.Row.Style.Add("height", "50px");

                return;
            }
        }

        protected void grvConfiguracion_SelectedIndexChanged(object sender, EventArgs e)
        {
            lblClave.Text = ((Label)grvConfiguracion.SelectedRow.FindControl("grvConfiguracion_lblClave")).Text;
            txtNombre.Text = ((Label)grvConfiguracion.SelectedRow.FindControl("grvConfiguracion_lblNombre")).Text;
            txtNombre.Enabled = false;

            txtValor.Text = ((Label)grvConfiguracion.SelectedRow.FindControl("grvConfiguracion_lblValor")).Text;
            txtValor.Enabled = true;
            
            txtNombre.Focus();
        }

        //protected void grvConfiguracion_RowCommand(object sender, GridViewCommandEventArgs e)
        //{
        //    //if (e.CommandName != "Eliminar") return;

        //    //var usrTmp = new BLL.Usuarios();

        //    //if (!usrTmp.EliminarUsuario(Convert.ToInt32(e.CommandArgument)))
        //    //    PopUpMessage(usrTmp.Mensaje);
        //    //else
        //    //    btnNuevo_Click(null, null);
        //}

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            ClearControls();

            CargaConfiguraciones();

            lblClave.Text = "-999";

            txtNombre.Text = "";
            txtNombre.Enabled = true;
            txtNombre.Focus();

            txtValor.Text = "";
        }

        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            var msg = "";

            if (txtNombre.Text.Length <= 0)
                msg = "Ingrese Clave";
 
            if (txtValor.Text.Length <= 0)
                msg = msg + "<br />Ingrese Valor";

            if (msg.Length > 0)
            {
                PopUpMessage(msg);
                return;
            }

            var objConfig = new Config
                                 {
                                     Clave = Convert.ToInt32(lblClave.Text),
                                     Nombre = txtNombre.Text,
                                     Valor = txtValor.Text,
                                 };

            if (!objConfig.Grabar())
            {
                PopUpMessage(objConfig.Mensaje);
                return;
            }

            btnNuevo_Click(null, null);
        }   
    }
}
